{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "import seaborn as sb # pretty plots\n",
    "\n",
    "import scipy as scp # optimization, probability density functions and special functions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "plt.rcParams['figure.figsize'] = (16.0, 8.0) # big figures on my computer"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from __future__ import print_function\n",
    "from ipywidgets import interact, interactive, fixed, interact_manual\n",
    "import ipywidgets as widgets"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Evaluation of classifiers\n",
    "\n",
    "Let's define a simple threshold-based classifier and compute:\n",
    "- Its ROC curve\n",
    "- Its Precision-Recall curve"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "def gen_data(n_a = 500, n_b = 500, difficulty = 1):\n",
    "    x = np.zeros(shape = [n_a + n_b])\n",
    "    y = np.zeros(shape = [n_a + n_b])\n",
    "    \n",
    "    x[0:n_a] = np.random.randn(n_a) * difficulty\n",
    "    y[0:n_a] = 0\n",
    "    \n",
    "    x[n_a:(n_a+n_b)] = 4 + (np.random.gamma(shape = 4, scale = 1, size = [n_b]) - 4 ) * difficulty\n",
    "    y[n_a:(n_a+n_b)] = 1\n",
    "    \n",
    "    return x,y"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABQwAAAKaCAYAAAB7ghTSAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAIABJREFUeJzs3X+QXnV99//XBwPZBDCMXkMg4tYAw7IakUm+QhVpGcrw\n7Y3Y2y9DMuTuQitFxCoVRgaslLullLsSqemoKOow0ruB+DNMGYmCFP3OjVr4QsoN3CyLJdhLAbFH\nIBjCldjmfP9IOCWQDdlrr/2R5PGY2Rn3nM851/siZzOTp2evU+q6DgAAAABAkuw11QMAAAAAANOH\nYAgAAAAANARDAAAAAKAhGAIAAAAADcEQAAAAAGgIhgAAAABAQzAEAAAAABqCIQAAAADQEAwBAAAA\ngIZgCAAAAAA0xhQMSynnlVL+dyll3davH5ZSfvcl+79cStn8sq/VvR8bAAAAAJgIM8a4/qdJLkny\n4yQlyR8m+YdSytF1XQ9vXfPtrdvL1u83jn9MAAAAAGAyjCkY1nV9y8s2/Vkp5YNJfjPJi8FwY13X\n/9aL4QAAAACAydX1ZxiWUvYqpZyRZHaSH75k1wmllKdKKQ+XUj5XSnnduKcEAAAAACZFqet6bAeU\nsiDJj5L0JflVkv9W1/V3tu5bkmRDkseSHJbkr7eueUc9yguVUl6f5P9O8pMkna7eBQAAAADsufqS\nvCnJrXVd/3K8J+smGM5I0p9kTpLTk7w/yW/Vdf3wdtbOT/Jokt+p6/p7o5zvvyW5YYxzAwAAAADb\n+v26rm8c70nG+tCT1HX970nWbv32n0spxyT5SJIPbmftY6WUKsnhSbYbDLPlzsKsWLEig4ODYx2H\nPciFF16Y5cuXT/UYTHOuE3aG64RX4xphZ7hO2BmuE3aG64Sd4TphR4aHhzM0NJRs7WzjNeZguB17\nJZm5vR2llEOSvD7Jkzs4vpMkg4ODWbhwYQ/GYXc1Z84c1wivynXCznCd8GpcI+wM1wk7w3XCznCd\nsDNcJ+yknnzc35iCYSnlfyT5dpJ2kv2T/H6S305ycill3yR/nuSbSX6eLXcVXpXkkSS39mJYAAAA\nAGBijfUOwwOT/F2Sg5OsS3J/kpPrur6jlNKX5KgkZyU5IMkT2RIK/3td17/u3cgAAAAAwEQZUzCs\n6/qcHezrJPndcU8EAAAAAEyZvaZ6ANhZS5cuneoR2AW4TtgZrhNejWuEneE6YWe4TtgZrhN2huuE\nyVTqup7aAUpZmOTee++914d3AgAAAMAYrVmzJosWLUqSRXVdrxnv+XrxlGQAAAAApli73U5VVVM9\nBhOk1Wqlv79/Ul5LMAQAAADYxbXb7QwODmbDhg1TPQoTZPbs2RkeHp6UaCgYAgAAAOziqqrKhg0b\nsmLFigwODk71OPTY8PBwhoaGUlWVYAgAAADAzhscHPSMCMbNU5IBAAAAgIZgCAAAAAA0BEMAAAAA\noCEYAgAAAAANwRAAAACA3cqb3vSmnH322VM9xi7LU5IBAAAAdnPtdjtVVU3pDK1WK/39/eM6x9q1\na3PVVVfl9ttvzxNPPJF99tknb33rW7NkyZKce+656evrS5KUUnoxcs9t2rQpl112WVasWJFnnnkm\nRx11VP7qr/4qJ5100lSPtg3BEAAAAGA31m63MzAwmE5nw5TO0dc3OyMjw11Hw1tuuSVLlixJX19f\nzjrrrCxYsCCbNm3KnXfemYsvvjgPPfRQrr322h5P3Vt/8Ad/kFWrVuXCCy/M4Ycfnuuvvz6nnHJK\nvv/97+ed73znVI/XEAwBAAAAdmNVVW2NhSuSDE7RFMPpdIZSVVVXwfAnP/lJli5dmvnz5+eOO+7I\ngQce2Oz74Ac/mCuuuCK33HJLLwfuubvvvjtf/epX8zd/8ze58MILkyRnnnlmFixYkIsvvjh33nnn\nFE/4n3yGIQAAAMAeYTDJwin6Gl+ovOqqq/L888/nuuuu2yYWvujQQw/N+eefP+rxzzzzTC666KIc\nddRR2X///TNnzpyccsopuf/++1+x9jOf+UwWLFiQfffdN6973evy9re/PV/5ylea/evXr88FF1yQ\n+fPnp6+vL3Pnzs3JJ5+c++67b4fv4Rvf+EZmzJiR97///c22mTNn5o/+6I/yox/9KI8//vjO/KeY\nFO4wBAAAAGBa+9a3vpVDDz00xx57bFfHr127NjfffHMWL16c+fPn56mnnsoXvvCFnHDCCXnooYdy\n0EEHJUm+9KUv5SMf+UiWLFmSCy64IJ1OJ/fff3/uuuuunHHGGUmSD3zgA1m1alXOP//8DA4O5pe/\n/GXuvPPODA8P5+ijjx51hvvuuy9HHHFE9ttvv222H3PMMc3+N7zhDV29v14TDAEAAACYtn71q1/l\n8ccfz3vf+96uz3HUUUflkUce2WbbmWeemYGBgVx33XW59NJLkySrV6/OggULtrmj8OVWr16d97//\n/Vm2bFmz7aKLLnrVGZ588skcfPDBr9h+8MEHp67rPPHEEzv7diacX0kGAAAAYNp67rnnkiT7779/\n1+fYe++9m/+9efPmPP3005k9e3YGBgayZs2aZt8BBxyQn/3sZ7nnnntGPdcBBxyQu+66K08++eSY\nZnjhhRcyc+bMV2x/8cnOL7zwwpjON5EEQwAAAACmrde+9rVJttxp2K26rrN8+fIcccQRmTlzZlqt\nVg488MA88MADWbduXbPukksuyX777ZdjjjkmRxxxRD784Q/nhz/84TbnWrZsWR588MG88Y1vzLHH\nHpvLL788jz322KvOMGvWrGzcuPEV2zudTrN/uhAMAQAAAJi29t9//8ybNy8PPvhg1+e48sor89GP\nfjQnnHBCbrjhhtx22225/fbb8+Y3vzmbN29u1h155JEZGRnJV7/61Rx//PFZtWpV3vWud+Xyyy9v\n1ixevDhr167NZz/72bzhDW/I1Vdfnbe85S259dZbdzjDwQcfvN27El/cNm/evK7fX68JhgAAAABM\na6eeemoeffTR3HXXXV0d/81vfjMnnnhivvjFL2bJkiU56aSTcuKJJ+bZZ599xdpZs2Zl8eLFue66\n69Jut/Pud787V155ZTZt2tSsmTt3bs4777ysWrUqjz32WF7/+tfnyiuv3OEMRx99dB555JGsX79+\nm+3/9E//lFLKDh+YMtkEQwAAAACmtYsvvjizZ8/OOeeck1/84hev2P/oo4/m05/+9KjHv+Y1r0ld\n19ts+/rXv57HH398m21PP/30Nt/PmDEjg4ODqes6v/71r7N58+bmMxVf1Gq1Mm/evO3+uvFLnX76\n6fn3f//3fPGLX2y2bdq0Kddff31+8zd/c9o8ITnxlGQAAACAPcTwLvvahx56aG688cacccYZGRwc\nzFlnnZUFCxZk06ZN+cEPfpBvfOMbed/73jfq8aeeemquuOKKnH322XnnO9+ZBx54IDfccEMOO+yw\nbdadfPLJOeigg3Lcccdl7ty5eeihh3LNNdfk1FNPzb777pt169blkEMOyemnn563ve1t2W+//fLd\n734399xzTz71qU/t8D0cc8wxWbx4cf70T/80Tz31VA4//PBcf/31+dd//dd8+ctfHtd/n14TDAEA\nAAB2Y61WK319s9PpDE3pHH19s9Nqtbo+/j3veU/uv//+fPKTn8zNN9+ca6+9Nvvss08WLFiQq6++\nOueee26ztpSSUkrz/cc//vFs2LAhN954Y772ta9l0aJFWb16dT72sY9ts+68887LDTfckOXLl2f9\n+vU55JBDcsEFF+TSSy9NksyePTsf+tCHctttt+Wmm27K5s2bc/jhh+fzn//8Nq8/mr//+7/PZZdd\nlhUrVuSZZ57JUUcdlVtuuSXHHXdc1/9dJkJ5+e2Ykz5AKQuT3Hvvvfdm4cKFUzoLAAAAwK5ozZo1\nWbRoUUbrK+12O1VVTcFk/6nVaqW/v39KZ9hVvdqf74v7kyyq63rNeF/PHYYAAAAAu7n+/n6xjp3m\noScAAAAAQEMwBAAAAAAagiEAAAAA0PAZhgBAoxcfhu3DrAEAYNcmGAIASbbEwoEjB9J5oTOu8/TN\n6svIwyOiIQAA7KIEQwAgSVJV1ZZYeFqSVrcnSTqrOqmqSjAEAIBdlGAIAGyrlWTeVA8BAABMFQ89\nAQAAAAAagiEAAAAA0BAMAQAAAICGYAgAAADAbuVNb3pTzj777KkeY5floScAAAAAu7l2u52qqqZ0\nhlarlf7+/nGdY+3atbnqqqty++2354knnsg+++yTt771rVmyZEnOPffc9PX1JUlKKb0Yuaeef/75\nLFu2LHfffXfuvvvuPPPMM7n++utz1llnTfVoryAYAgAAAOzG2u12Bo4cSOeFzpTO0TerLyMPj3Qd\nDW+55ZYsWbIkfX19Oeuss7JgwYJs2rQpd955Zy6++OI89NBDufbaa3s8de9UVZUrrrgiv/Ebv5Gj\njz463//+96d6pFEJhgAAAAC7saqqtsTC05K0pmqIpLOqk6qqugqGP/nJT7J06dLMnz8/d9xxRw48\n8MBm3wc/+MFcccUVueWWW3o5cc/NmzcvP//5z3PggQfm3nvvzdvf/vapHmlUPsMQAAAAYE/QSjJv\nir7GGSqvuuqqPP/887nuuuu2iYUvOvTQQ3P++eePevwzzzyTiy66KEcddVT233//zJkzJ6ecckru\nv//+V6z9zGc+kwULFmTffffN6173urz97W/PV77ylWb/+vXrc8EFF2T+/Pnp6+vL3Llzc/LJJ+e+\n++7b4XvYe++9tzv7dOQOQwAAAACmtW9961s59NBDc+yxx3Z1/Nq1a3PzzTdn8eLFmT9/fp566ql8\n4QtfyAknnJCHHnooBx10UJLkS1/6Uj7ykY9kyZIlueCCC9LpdHL//ffnrrvuyhlnnJEk+cAHPpBV\nq1bl/PPPz+DgYH75y1/mzjvvzPDwcI4++uieveepJBgCAAAAMG396le/yuOPP573vve9XZ/jqKOO\nyiOPPLLNtjPPPDMDAwO57rrrcumllyZJVq9enQULFmxzR+HLrV69Ou9///uzbNmyZttFF13U9WzT\nkV9JBgAAAGDaeu6555Ik+++/f9fn2HvvvZv/vXnz5jz99NOZPXt2BgYGsmbNmmbfAQcckJ/97Ge5\n5557Rj3XAQcckLvuuitPPvlk1/NMd4IhAAAAANPWa1/72iRb7jTsVl3XWb58eY444ojMnDkzrVYr\nBx54YB544IGsW7euWXfJJZdkv/32yzHHHJMjjjgiH/7wh/PDH/5wm3MtW7YsDz74YN74xjfm2GOP\nzeWXX57HHnus69mmI8EQAAAAgGlr//33z7x58/Lggw92fY4rr7wyH/3oR3PCCSfkhhtuyG233Zbb\nb789b37zm7N58+Zm3ZFHHpmRkZF89atfzfHHH59Vq1blXe96Vy6//PJmzeLFi7N27dp89rOfzRve\n8IZcffXVectb3pJbb711XO9zOhEMAQAAAJjWTj311Dz66KO56667ujr+m9/8Zk488cR88YtfzJIl\nS3LSSSflxBNPzLPPPvuKtbNmzcrixYtz3XXXpd1u593vfneuvPLKbNq0qVkzd+7cnHfeeVm1alUe\ne+yxvP71r8+VV17Z9fubbgRDAAAAAKa1iy++OLNnz84555yTX/ziF6/Y/+ijj+bTn/70qMe/5jWv\nSV3X22z7+te/nscff3ybbU8//fQ238+YMSODg4Op6zq//vWvs3nz5uYzFV/UarUyb968bNy4caxv\na9rylGQAAAAAprVDDz00N954Y84444wMDg7mrLPOyoIFC7Jp06b84Ac/yDe+8Y28733vG/X4U089\nNVdccUXOPvvsvPOd78wDDzyQG264IYcddtg2604++eQcdNBBOe644zJ37tw89NBDueaaa3Lqqadm\n3333zbp163LIIYfk9NNPz9ve9rbst99++e53v5t77rknn/rUp171fVxzzTV59tlnm1B5880356c/\n/WmS5E/+5E/G9WCXXhIMAQAAAPYE1a792u95z3ty//3355Of/GRuvvnmXHvttdlnn32yYMGCXH31\n1Tn33HObtaWUlFKa7z/+8Y9nw4YNufHGG/O1r30tixYtyurVq/Oxj31sm3XnnXdebrjhhixfvjzr\n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\nAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7989b70>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "diff = 1\n",
    "\n",
    "x,y = gen_data(difficulty = diff)\n",
    "\n",
    "plt.hist( x[y==0], bins = 50, label = \"Class 0\")\n",
    "plt.hist( x[y==1], bins = 50, label = \"Class 1\")\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "def classifier(x, th = 1):\n",
    "    return 1. * ( x >= th )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(0.98399999999999999,\n",
       " 0.84199999999999997,\n",
       " 0.91300000000000003,\n",
       " 0.86164623467600698)"
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def classification_stats(y, y_hat):\n",
    "    sensitivity = np.sum( (y == y_hat) * (y == 1) ) / np.sum( y == 1 )\n",
    "    specificity = np.sum( (y == y_hat) * (y == 0) ) / np.sum( y == 0 )\n",
    "    miss_rate   = np.mean( (y == y_hat))\n",
    "    \n",
    "    precision   = np.sum( (y == y_hat) * (y_hat == 1) ) / np.sum( y_hat == 1 )\n",
    "    \n",
    "    return sensitivity, specificity, miss_rate, precision\n",
    "    \n",
    "diff = 1\n",
    "\n",
    "x,y = gen_data(difficulty = diff)\n",
    "y_hat = classifier(x, 1)\n",
    "\n",
    "classification_stats(y, y_hat)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 87,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Program Files\\Anaconda3\\lib\\site-packages\\ipykernel\\__main__.py:2: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future\n",
      "  from ipykernel import kernelapp as app\n",
      "C:\\Program Files\\Anaconda3\\lib\\site-packages\\ipykernel\\__main__.py:3: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future\n",
      "  app.launch_new_instance()\n",
      "C:\\Program Files\\Anaconda3\\lib\\site-packages\\ipykernel\\__main__.py:5: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future\n",
      "C:\\Program Files\\Anaconda3\\lib\\site-packages\\ipykernel\\__main__.py:6: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future\n",
      "C:\\Program Files\\Anaconda3\\lib\\site-packages\\ipykernel\\__main__.py:8: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future\n",
      "C:\\Program Files\\Anaconda3\\lib\\site-packages\\ipykernel\\__main__.py:9: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xbf2f5f8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "def ROC(x,y, th_array = np.linspace(-20,20,101) ):\n",
    "    roc_x = np.zeros_like(th_array)\n",
    "    roc_y = np.zeros_like(th_array)\n",
    "    \n",
    "    for i in range(len(th_array)):\n",
    "        th = th_array[i]\n",
    "        \n",
    "        y_hat = classifier(x,th)\n",
    "        \n",
    "        sensitivity, specificity, miss_rate, precision = classification_stats(y, y_hat)\n",
    "        \n",
    "        roc_x[i] = 1 - specificity\n",
    "        roc_y[i] = sensitivity\n",
    "        \n",
    "    plt.plot(roc_x, roc_y, '-o')\n",
    "    plt.plot(roc_x, roc_x, 'k--')\n",
    "\n",
    "for diff in [2]: #[0.05, 1,2,3,4,5]:\n",
    "    for prop_0 in [0.5]: #[0.5, 0.95]:\n",
    "        n_a = np.round(10**3 * prop_0)\n",
    "        n_b = np.round(10**3 * (1-prop_0))\n",
    "        x,y = gen_data(n_a, n_b, difficulty = diff)\n",
    "        ROC(x,y)\n",
    "\n",
    "    \n",
    "plt.xlim([-0.1,1.1])\n",
    "plt.ylim([-0.1,1.1])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "metadata": {
    "collapsed": false,
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Program Files\\Anaconda3\\lib\\site-packages\\ipykernel\\__main__.py:2: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future\n",
      "  from ipykernel import kernelapp as app\n",
      "C:\\Program Files\\Anaconda3\\lib\\site-packages\\ipykernel\\__main__.py:3: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future\n",
      "  app.launch_new_instance()\n",
      "C:\\Program Files\\Anaconda3\\lib\\site-packages\\ipykernel\\__main__.py:5: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future\n",
      "C:\\Program Files\\Anaconda3\\lib\\site-packages\\ipykernel\\__main__.py:6: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future\n",
      "C:\\Program Files\\Anaconda3\\lib\\site-packages\\ipykernel\\__main__.py:8: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future\n",
      "C:\\Program Files\\Anaconda3\\lib\\site-packages\\ipykernel\\__main__.py:9: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xbeb6550>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "def prec_recall(x,y, th_array = np.linspace(-20,20,101) ):\n",
    "    curve_x = np.zeros_like(th_array)\n",
    "    curve_y = np.zeros_like(th_array)\n",
    "    \n",
    "    for i in range(len(th_array)):\n",
    "        th = th_array[i]\n",
    "        \n",
    "        y_hat = classifier(x,th)\n",
    "        \n",
    "        sensitivity, specificity, miss_rate, precision = classification_stats(y, y_hat)\n",
    "        \n",
    "        curve_x[i] = sensitivity\n",
    "        curve_y[i] = precision \n",
    "        \n",
    "    plt.plot(curve_x, curve_y, '-o')\n",
    "    plt.plot(curve_x, np.ones_like(curve_x) * np.mean(y), 'k--')\n",
    "    \n",
    "for diff in [2]: #[0.05, 1,2,3,4,5]:\n",
    "    for prop_0 in [0.5]: #[0.5, 0.95]:\n",
    "        n_a = np.round(10**3 * prop_0)\n",
    "        n_b = np.round(10**3 * (1-prop_0))\n",
    "        x,y = gen_data(n_a, n_b, difficulty = diff)\n",
    "        prec_recall(x,y)\n",
    "\n",
    "    \n",
    "plt.xlim([-0.1,1.1])\n",
    "plt.ylim([-0.1,1.1])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "> <ipython-input-40-89c31e6ee431>(8)gen_data()\n",
      "-> x[n_a:(n_a+n_b)] = 4 + (np.random.gamma(shape = 4, scale = 1, size = [n_b]) - 4 ) * difficulty\n",
      "(Pdb) n_a\n",
      "800.0\n",
      "(Pdb) n_b\n",
      "199.99999999999994\n",
      "(Pdb) q\n"
     ]
    }
   ],
   "source": [
    "import pdb\n",
    "pdb.pm()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python [default]",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
